org(-mode)
A lot is said online about org that confuses people unfamiliar with it. The best explanation I can give: Org is three things.
A markup language. A weird flavour of markdown, if you like.
Extremely good editor support inside emacs for that markup language. So good, that sometimes you are forgetting that it's just plain text.
A bunch of software bundled with emacs that can parse this markup language, filter and re-order it to display it in a useful manner.
I use org to keep myself organised (hence the name, I guess) and to plan my days. I put notes on various topics, todo lists, appointments, tracking of certain achievements, documentation on various things and more into org. I can then instruct org to automatically dig up all the appointments and generate an agenda for the day / week. Or I can instruct it to dig up all todo items with a certain tag from a certain section.
Some people keep multiple files with cross-links (like how I have set
up this digital garden!), however I prefer to have one single file,
~/Agenda/agenda.org. Inside I have a pretty boring hierarchy of topic
headers. However I do make use of tags more liberally, for example I
apply the :friends: tag to appointments that include my friends
regardless in which section I have put them.
Alternative implementations of org exist, but the one shipped with emacs is the only complete one. I am pondering how to procede with org if I couldn't use emacs anymore for some reason, because I prefer not to have a single point of failure for something this important. At least, since it's all plain text, I wouldn't loose the data!
Tips & Tricks
Emacs also contains the dirary package. It is intended to be a
calendar for your appointments (and not a diary, what a confusing
name). It has its own file where you can define appointments and it
has its own agenda display, which even integrates with M-x calendar.
The thing that makes it neat is that it supports displaying holidays,
unlike org.
By default, org and diary do not integrate, however you can manually
enable that. You'll want to set org-agenda-include-diary to t. That
way you can see appointments defined in the diary file and - more
importantly - holidays in your org agenda.
The other way around is possible as well: Just put %%(org-diary) in
your diary file. This way appointments defined in org will show up in
your diary daily agenda. I use this less often, but in theory M-x
diary is quicker to open than the org agenda.
If you have enabled the integration, you can even press c in your org
agenda to jump to emacs calendar view, where you can press c again to
jump to the org agenda view of the selected day.
A Warning on Org Export
Emacs org mode allows you to export org files. It can target different output formats, including HTML and PDF (via LaTeX). These are tempting to use, however ultimately they are of questionable quality.
The HTML exporter that is shipped with org should not be used. It has
many issues. The HTML it generates is not semantic and litters <div>
everywhere. The IDs for its header links are generated randomly and as
such change on every export. And you are sure to encounter other
strange choices when you inspect the generated HTML. For this digital
garden I created my own org HTML exporter. Luckily that is fairly
trivial.
The PDF / LaTeX export is somewhat fine for small documents, like a letter or note. However it quickly falls apart for anything serious, like writing papers or thesis. The problem is ultimately that org is presentational markup rather than semantic markup. Presentational markup is a no-go for any serious document. Org is simply not as expressive as LaTeX.